package com.phantasy.scene.tile
{
	import flash.net.registerClassAlias;

	public class Pt
	{
		private var _x:Number;
		private var _y:Number;
		private var _z:Number;
		private var _key:String;
		
		public function Pt(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0)
		{
			registerClassAlias("sai.save.core.tile.Pt", Pt);
			this._x = _arg1;
			this._y = _arg2;
			this._z = _arg3;
			this._key = ((((this._x + "|") + this._y) + "|") + this._z);
		}
		
		public static function distance(_arg1:Pt, _arg2:Pt):Number
		{
			var _local3:Number = Math.pow(2, (_arg1.x - _arg2.x));
			var _local4:Number = Math.pow(2, (_arg1.z - _arg2.z));
			return (Math.sqrt((_local3 + _local4)));
		}
		
		
		public function get key():String
		{
			return (this._key);
		}
		
		public function toString():String
		{
			return ((((((("[Pt(" + this._x) + ",") + this._y) + ",") + this._z) + ")]"));
		}
		
		public function get z():Number
		{
			return (this._z);
		}
		
		public function set z(_arg1:Number):void
		{
			this._z = _arg1;
			this._key = ((((this._x + "|") + this._y) + "|") + this._z);
		}
		
		public function get x():Number
		{
			return (this._x);
		}
		
		public function set x(_arg1:Number):void
		{
			this._x = _arg1;
			this._key = ((((this._x + "|") + this._y) + "|") + this._z);
		}
		
		public function get y():Number
		{
			return (this._y);
		}
		
		public function set y(_arg1:Number):void
		{
			this._y = _arg1;
			this._key = ((((this._x + "|") + this._y) + "|") + this._z);
		}

	}
}